package createtype.AbstractFactory;

/**
 * Created by LYJ on 2016/10/18.
 * 详细链接：Factory Method（工厂方法）http://blog.csdn.net/u013256816/article/details/50975438
 */
public class MainTest {
    public static void main(String... args) {
        AbstractFactory factory=new ConcreateFactory1();
        AbstractProductA productA=factory.CreateProductA();
        AbstractProductB productB=factory.CreateProductB();
        productA.produceA();
        productB.produceB();
    }
}
/*
工厂方法模式 VS 抽象工厂模式
 工厂方法模式：
一个抽象产品类，可以派生出多个具体产品类。每个具体工厂类只能创建一个具体产品类的实例。
 抽象工厂模式：
多个抽象产品类，每个抽象产品类可以派生出多个具体产品类。一个抽象工厂类可以
派生出多个具体工厂类。每个具体工厂类可以创建多个具体产品的实例。
 区别：
工厂方法模式只有一个抽象产品类，而抽象工厂模式有多个。工厂方法模式的具体
工厂类只能创建一个具体产品类的实例，而抽象工厂模式可以创建多个。
 */
